var disenadorClass = {
    /**
     * @objDis: Es objecto tipo Array donde se ingresaran todos los objectos creados los cuales seran mostrados en
     * en en diseñador pero no guardados.
     * @obj: Este objecto tipo Array es donde tambien se ingresaran los objectos creados y verificados los cuales
     * si seran Guardados segun los tipos de Ítems y Orden de los mismos.
     * @objId: Es el Id el cual menejara el key de los Array de los objectos anteriores.
     */
    obj: new Array(),
    objDis: new Array(),
    objId: null,
    /**
     * Variables Globales
     */
    nameBol: null,
    partBol: null,
    typeBol: null,
    script1: null,
    script2: null,
    /**
     * Variables de los Objectos Widget's
     */
    layout: null,
    tree: null,
    grid: null,
    itemsPanel: null,
    /**
     * Variables de Objectos dentro de otros Objectos Widget's.
     */
    toolbarTree: null,
    toolbarGrid: null,
    toolbarItems: null,
    statusItem: null,
    /**
     * Contadores de Ítem's
     */
    contAllItems: 0,
    contLabel: 0,
    contInput: 0,
    contSelect: 0,
    contRadio: 0,
    contCheck: 0,
    contFile: 0,
    contCalendar: 0,
    /**
     * ----------------------- START DISAGNER FORM WIDGET'S -----------------------
     */
    /**
     * Se añade un nuevo Tab al Contenedor del Tab's, asi como tambien se le
     * asigna el formato: 3J para la inclusion de demas widget's, asi como se
     * activa como principal.
     */
    widgetTab: function(){
        var disTab,
            me = this;
        mainTab.addTab("disTab", "Diseñador de Boletas", "150px", "-1");
        disTab = mainTab.cells('disTab');
        me.layout = disTab.attachLayout('3J');
        mainTab.setTabActive("disTab");
    },
    /**
     * Metodo que diseña el widget tipo --- Tree, asi como dentro de este se
     * crea el widget tipo ---> ToolBar.
     */
    widgetTree: function(){
        var cell,
            me = this;
        /**
         * Se crea las propiedades de la celda
         */
        cell = me.layout.cells('a');
        cell.setText("Listado de Ítem's");
        cell.setWidth('200');
        cell.setHeight('250');
        cell.fixSize(true, true);
        /**
         * Se crea un -->"Attach" tipo Tree dentro de la celda.
         */
        me.tree = cell.attachTree();
        /**
         * Se hace referencia al Evento del Tree
         */
        me.onEventClickItemsTree();
        /**
         * Se hace un -->"Attach" tipo ToolBar dentro de la Celda
         */
        me.toolbarTree = cell.attachToolbar();
        me.toolbarTree.setIconsPath(mainPath + 'images/icons/');
        me.toolbarTree.addButton("btn_up", 1, "", "icon_23.png", "icon_23d.png");
        me.toolbarTree.setItemToolTip("btn_up", "Mover ítem hacia arriba");
        me.toolbarTree.addButton("btn_down", 2, "", "icon_22.png", "icon_22d.png");
        me.toolbarTree.setItemToolTip("btn_down", "Mover ítem hacia abajo");
        me.toolbarTree.addSeparator("sep1", 3);
        me.toolbarTree.addSpacer("sep1");
        me.toolbarTree.addButton("btn_edit", 4, "", "icon_25.png", "icon_25d.png");
        me.toolbarTree.setItemToolTip("btn_edit", "Editar propiedades del ítem");
        me.toolbarTree.addButton("btn_delete", 5, "", "icon_17.png", "icon_17d.png");
        me.toolbarTree.setItemToolTip("btn_delete", "Eliminar ítem");

        /**
         * Se hace referencia al Evento del TooBar del Tree
         */
        me.onEventClickButtonsTree();
    },
    /**
     * Metodo que diseña el widget tipo ---> GridProperty, asi como dentro de este otro
     * widget tipo ---> ToolBar.
     */
    widgetGrid: function () {
        var cell,
            me = this;
        /**
         * Se crea las propiedades de la celda
         */
        cell = me.layout.cells('c');
        cell.setText('Propiedades del Ítem');
        cell.setWidth('200');
        /**
         * Se hace un ---> "Attach" tipo GridProperty dentro de la celda, asi tambien
         * se le asigna ciertas propiedades.
         */
        me.grid = cell.attachPropertyGrid();
        me.grid.enableValidation(true);
        me.grid.setInitWidths("100,*");
        me.grid.init();
        /**
         * Se hace referencia al evento del GridProperty
         */
        me.onEventEditCellGridProperty();
        /**
         * Se hace un --> "Attach" tipo ToolBar dentro de la GridProperty
         */
        me.toolbarGrid = cell.attachToolbar();
        me.toolbarGrid.setIconsPath(mainPath + 'images/icons/');
        me.toolbarGrid.addButton("btn_check", 1, "Verificar", "icon_24.png", "icon_24d.png");
        me.toolbarGrid.setItemToolTip("btn_check", "Verifica si los valores de las propiedades del Ítem son correctas");
        me.toolbarGrid.addSeparator("sep1", 2);
        me.toolbarGrid.addButton("btn_cancel", 3, "Cancelar", "icon_17.png", "icon_17d.png");
        me.toolbarGrid.setItemToolTip("btn_cancel", "Cancela el Ítem");
        /**
         * Se hace referencia al evento del ToolBar que esta dentro del GridProperty
         */
        me.onEventClickButtonsGridProperty();
    },
    /**
     * Metodo que diseña el widget tipo ---> Cell, asi como dentro de este se crean los
     * widget's Toolbar, StatusBar.
     */
    widgetItems: function () {
        var me = this;
        /**
         * Se crea las propiedades de la celda
         */
        me.itemsPanel = me.layout.cells('b');
        me.itemsPanel.setText("Adcionar Ítem's");
        /**
         * Se hace un -->"Attach" tipo ToolBar dentro de la Celda
         */
        me.toolbarItems = me.itemsPanel.attachToolbar();
        me.toolbarItems.setIconsPath(mainPath + 'images/icons/');
        me.toolbarItems.loadXML(mainPath + "xml/items.xml", function () {
            me.toolbarItems.addSpacer("sep_1");
        });
        /**
         * Se hace referencia al Evento del ToolBar
         */
        me.onEventClickButtonsItems();
        /**
         * Se hace un -->"Attach" tipo StatusBar dentro de la Celda
         */
        me.statusItem = me.itemsPanel.attachStatusBar();
    },
    /**
     * Metodo con todos los Widget's necesarios.
     */
    /**
     * ----------------------- END DISAGNER FORM WIDGET'S -----------------------
     */
    /**
     * Metodo que Habilita y Desabilita todos los ToolBar's del Diseñador.
     */
    enabledDisabledToolbars: function (status) {
        var me = this;
        if (status) {
            me.toolbarItems.forEachItem(function (id) {
                me.toolbarItems.disableItem(id);
            });
            me.toolbarTree.forEachItem(function (id) {
                me.toolbarTree.disableItem(id);
            });
            me.toolbarGrid.forEachItem(function (id) {
                me.toolbarGrid.enableItem(id);
            });
        }
        else {
            me.toolbarItems.forEachItem(function (id) {
                me.toolbarItems.enableItem(id);
            });
            me.toolbarTree.forEachItem(function (id) {
                me.toolbarTree.enableItem(id);
            });
            me.toolbarGrid.forEachItem(function (id) {
                me.toolbarGrid.disableItem(id);
            });
        }
    },
    /**
     * Asigna las propiedades por defecto segun el Ítem que se haya ingresado.
     */
    getDefaultPropertyItems: function (itemName) {
        var me = this,
            item = new Object();
        switch (itemName) {
            case 'label':
                me.contLabel++;

                item.type = "label";
                item.name = "Texto_" + me.contLabel;
                item.label = "Texto_" + me.contLabel;
                item.labelWidth = 300;
                item.width = 300;
                break;
            case 'input':
                me.contInput++;

                item.type = "input";
                item.name = "Campo_" + me.contInput;
                item.label = "Campo_" + me.contInput;
                item.labelAlign = "right";
                item.position = "label-left";
                item.labelWidth = 57;
                item.inputWidth = 400;
                item.validate = "";
                break;
            case 'select':
                me.contSelect++;

                item.type = "select";
                item.name = "Select_"+me.contSelect;
                item.label = "Select_"+me.contSelect;
                item.labelWidth = 55;
                item.labelAlign = "left";
                item.inputWidth = 140;
                item.position = "label-left";
                break;
            case 'radio':
                me.contRadio++;

                item.type = "radio";
                item.name = "Radio_"+me.contRadio;
                item.label = "Radio_"+me.contRadio;
                item.labelWidth = 45;
                item.labelAlign = "left";
                item.position = "label-left";
                item.value = "";
                break;
            case 'checkbox':
                me.contCheck++;

                item.type = "checkbox";
                item.name = "Checkbox_"+me.contCheck;
                item.label = "Checkbox_"+me.contCheck;
                item.labelWidth = 67;
                item.labelAlign = "left";
                item.position = "label-left";
                break;
            case 'file':
                me.contFile++;

                item.type = "file";
                item.name = "Archivo_"+me.contFile;
                item.label = "Subir_Archivo_"+me.contFile;
                item.labelWidth = 95;
                item.labelAlign = "left";
                item.position = "label-left";
                break;
            case 'calendar':
                me.contCalendar++;

                item.type = "calendar";
                item.name = "Calendario_"+me.contCalendar;
                item.label = "Calendario_"+me.contCalendar;
                item.dateFormat = "%d-%m-%Y";
                item.readonly = true;
                item.labelWidth = 75;
                item.labelAlign = "left";
                item.inputWidth = 75;
                item.position ="label-left";
                break;
        }
        item.tooltip = "";
        item.offsetLeft = 15;
        return item;
    },
    setPropertyItems: function (idObj, typeItem, row, value) {
        var atributs;
        switch (typeItem) {
            case 'label':
                atributs = ["label","className","labelWidth"];
                break;
            case 'input':
                atributs = ["label","validate","labelAlign","position","labelWidth","inputWidth","tooltip"];
                break;
            case 'select':
                atributs = ["label","labelAlign","position","labelWidth","inputWidth","tooltip"];
                break;
            case 'radio':
                atributs = ["name","label","labelAlign","position","labelWidth","value","tooltip"];
                break;
            case 'checkbox':
                atributs = ["label","labelAlign","position","labelWidth","tooltip"];
                break;
            case 'file':
                atributs = ["label","labelAlign","position","labelWidth","tooltip"];
                break;
            case 'calendar':
                atributs = ["label","labelAlign","position","labelWidth","inputWidth","tooltip"];
                break;
        }
        for(var i=1;i<=4;i++){
            atributs.unshift('');
        }
        this.objDis[idObj][atributs[row]] = value;
    },
    getErrorGridProperty: function(){
        var sw = true,
            cont = 0,
            contErrors = 0,
            me = this;
        me.grid.forEachRow(function (id) {
            cont++;
            var value = me.grid.cells(cont,1).getValue();
            if(value == '' || value.split(" ")[4] == ''){
                contErrors++;
                me.grid.cells(cont,1).setValue('');
                sw = me.grid.validateCell(cont, 1);
            }
        });
        if((sw && contErrors == 0) || (sw == undefined && contErrors == 1))
            return true;
        else
            dhtmlx.alert({
                text:"Los campos de color 'ROJO' son necesarios!!!"
            });
        return false;
        /*
        if(sw){
            if (me.grid.cells(1,1).getValue().split(" ")[1] == '') {
                dhtmlx.alert({
                    text:"Seleccione una MÓDULO para asignar al Ítem creado.",
                    callback: function(){
                        me.grid.selectCell(0, 1, false, false, true);
                    }
                });
            }
            else if(me.grid.cells(2,1).getValue().split(" ")[1] == ''){
                dhtmlx.alert({
                    text:"Seleccione un valor para el campo 'PREGUNTA'.",
                    callback: function(){
                        me.grid.selectCell(1, 1, false, false, true);
                    }
                });
            }
            else if(me.grid.cells(3,1).getValue().split(" ")[1] == ''){
                dhtmlx.alert({
                    text:"Seleccione un nivel para la 'PREGUNTA'.",
                    callback: function(){
                        me.grid.selectCell(2, 1, false, false, true);
                    }
                });
            }
            else
                return true;
        }
        else
            dhtmlx.alert({
                text:"Los campos de color 'ROJO' son necesarios, ingreselos!!!"
            });
        return false;
       */
    },
    loadEditFormBoleta: function(){
        var me = this;
        me.objDis = JSON.parse(me.script1);
        me.obj = JSON.parse(me.script2);

        me.itemsPanel.attachForm(me.obj);
        for (var i in me.obj) {
            var name = me.obj[i].name.split('_');
            var text = (me.obj[i].label.length > 16) ? me.obj[i].label.substr(0, 14) + '...' : me.obj[i].label;
            var item = '<span style="color: #990000;">' + name[0] + '</span>: <span style="color: #666666">' + text + '</span>';

            me.tree.insertNewItem(0, 'itemTree_'+i, item);
        }
        me.contAllItems = parseInt(i)+1;
    },
    setDataInGridProperty:function (item) {
        var me = this,
            sw = null;
        me.grid.cells(1, 1).setValue(me.obj[item].modulo);
        me.grid.cells(2, 1).setValue(me.obj[item].pregunta);
        me.grid.cells(3, 1).setValue(me.obj[item].nivelpre);
        switch (me.obj[item].type) {
            case 'label':
                me.grid.cells(4, 1).setValue(me.obj[item].label);
                me.obj[item].className == "fontBoldBorder" ? me.grid.cells(5, 1).setValue('fontBold') : me.grid.cells(5, 1).setValue('fontNormal');
                me.grid.cells(6, 1).setValue(me.obj[item].labelWidth);
            break;
            case 'input':
                me.grid.cells(4,1).setValue(me.obj[item].label);
                me.grid.cells(5,1).setValue(me.obj[item].validate);
                me.grid.cells(6,1).setValue(me.obj[item].labelAlign);
                me.grid.cells(7,1).setValue(me.obj[item].position);
                me.grid.cells(8,1).setValue(me.obj[item].labelWidth);
                me.grid.cells(9,1).setValue(me.obj[item].inputWidth);

                sw = 10;
            break;
            case 'select':
                me.grid.cells(4,1).setValue(me.obj[item].label);
                me.grid.cells(5,1).setValue(me.obj[item].labelAlign);
                me.grid.cells(6,1).setValue(me.obj[item].position);
                me.grid.cells(7,1).setValue(me.obj[item].labelWidth);
                me.grid.cells(8,1).setValue(me.obj[item].inputWidth);
                sw = 9;
            break;
            case 'radio':
                me.grid.cells(4,1).setValue(me.obj[item].name);
                me.grid.cells(5,1).setValue(me.obj[item].label);
                me.grid.cells(6,1).setValue(me.obj[item].labelAlign);
                me.grid.cells(7,1).setValue(me.obj[item].position);
                me.grid.cells(8,1).setValue(me.obj[item].inputWidth);
                me.grid.cells(9,1).setValue(me.obj[item].value);
                sw = 10;
            break;
            case 'checkbox':
                me.grid.cells(4,1).setValue(me.obj[item].label);
                me.grid.cells(5,1).setValue(me.obj[item].labelAlign);
                me.grid.cells(6,1).setValue(me.obj[item].position);
                me.grid.cells(7,1).setValue(me.obj[item].labelWidth);
                sw = 8;
            break;
            case 'file':
                me.grid.cells(4,1).setValue(me.obj[item].label);
                me.grid.cells(5,1).setValue(me.obj[item].labelAlign);
                me.grid.cells(6,1).setValue(me.obj[item].position);
                me.grid.cells(7,1).setValue(me.obj[item].labelWidth);
                sw = 8;
            break;
            case 'calendar':
                me.grid.cells(4,1).setValue(me.obj[item].label);
                me.grid.cells(5,1).setValue(me.obj[item].labelAlign);
                me.grid.cells(6,1).setValue(me.obj[item].position);
                me.grid.cells(7,1).setValue(me.obj[item].labelWidth);
                me.grid.cells(8,1).setValue(me.obj[item].inputWidth);
                sw = 9;
            break;
        }
        if(me.obj[item].tooltip != '')
            me.grid.cells(sw,1).setValue(me.obj[item].tooltip);
    },
    /**
     * ----------------------- START WIDGET'S EVENT'S -----------------------
     */
    /**
     * Metodo que maneja el Evento --Click-- del widget Panel Item's
     */
    onEventClickButtonsItems: function () {
        var me = this,
            itemObj,
            nameItem;
        me.toolbarItems.attachEvent("onClick", function (itemId) {
            nameItem = itemId.split('_');
            if (nameItem[1] != 'end' && nameItem[1] != 'cut') {
                itemObj = me.getDefaultPropertyItems(nameItem[1]);
                if(itemObj.type){
                    me.grid.loadXML(mainPath + "xml/" + nameItem[1] + ".xml", function () {
                        me.grid.selectCell(3, 1, false, false, true);
                    });
                    me.enabledDisabledToolbars(true);
                    me.objDis.push(itemObj);
                    me.itemsPanel.attachForm(me.objDis);
                }
                else
                    dhtmlx.alert({
                        text:"Error el Ítem --> '"+nameItem[1]+"' no tiene ninguna propiedad."
                    });
            }
            else {
                switch (nameItem[1]) {
                    case 'cut':
                        if(me.obj.length > 0){
                            dhtmlx.confirm({
                                text:"¿Esta seguro de hacer un corte a la boleta: '"+me.nameBol+"' ?",
                                callback: function(status){
                                    if(status == true){

                                            var myObj = JSON.stringify(me.obj);
                                            var loader = dhtmlxAjax.get(mainPath + "index.php/boleta/cut?obj=" + myObj + "&name=" + me.nameBol + "&part=" + me.partBol.split(' ')[1], function (loader) {
                                                if (loader.xmlDoc.response) {
                                                    dhtmlx.alert({
                                                        text:'Se hizo el CORTE correctamente a la Boleta: "' + me.nameBol + '"',
                                                        callback: function(){
                                                            mainTab.removeTab(mainTab.getActiveTab(), true);
                                                        }
                                                    })
                                                }
                                                else
                                                    dhtmlx.alert({
                                                        text:loader.xmlDoc.response
                                                    });
                                            });

                                    }
                                }
                            });
                        }
                        else
                            dhtmlx.alert({
                                text:"No se pudo realizar el CORTE debido a que no existen ítem's en el dieñador."
                            })
                    break;
                    case 'end':
                    break;
                }
            }
        });
    },
     /**
      * Metodo que maneja el Evento --EditCell-- del widget GridProperty
      */
    onEventEditCellGridProperty: function () {
        var me = this,
            idObj;
        me.grid.attachEvent("onEditCell", function (stage, numRow, numCol, newValue) {
            if (stage == 2 && newValue != '') {
                if(me.objId != null)
                    idObj = me.objId;
                else
                    idObj = me.objDis.length - 1;//# en esta parte tiene que haber una bandera para determinar si es edicion o no!.

                me.setPropertyItems(idObj, me.objDis[idObj].type, numRow, newValue);
                me.itemsPanel.attachForm(me.objDis);
            }
            return true;
        });
    },
    /**
     * Metodo que maneja el Evento --Click-- en los Botones del ToolBar del widget GridProperty
     */
    onEventClickButtonsGridProperty: function () {
        var id,
            me = this;
        me.toolbarGrid.attachEvent("onClick", function (itemId) {
            if (itemId == 'btn_check') {
                if(me.getErrorGridProperty()){
                    if(me.objId == null) {
                        id = me.objDis.length - 1;

                        me.obj[me.contAllItems] = me.objDis[id];
                        me.obj[me.contAllItems].modulo = me.grid.cells(1,1).getValue();
                        me.obj[me.contAllItems].pregunta = me.grid.cells(2,1).getValue();
                        me.obj[me.contAllItems].nivelpre = me.grid.cells(3,1).getValue();

                        me.contAllItems++
                        me.enabledDisabledToolbars(false);
                        me.grid.clearAll();

                        var name = me.objDis[id].name.split('_');
                        var text = (me.objDis[id].label.length > 16) ? me.objDis[id].label.substr(0, 14) + '...' : me.objDis[id].label;
                        var item = '<span style="color: #990000;">' + name[0] + '</span>: <span style="color: #666666">' + text + '</span>';

                        me.tree.insertNewItem(0, me.contAllItems, item, 0, 0, 0, 0, 'SELECT');
                        me.tree.focusItem(me.contAllItems);
                    }
                    else{
                        id = me.objId;
                        me.obj[id] = me.objDis[id];
                        me.obj[id].modulo = me.grid.cells(1,1).getValue();

                        me.enabledDisabledToolbars(false);
                        me.grid.clearAll();

                        var name = me.objDis[id].name.split('_');
                        var text = (me.objDis[id].label.length > 16) ? me.objDis[id].label.substr(0, 14) + '...' : me.objDis[id].label;
                        var item = '<span style="color: #990000;">' + name[0] + '</span>: <span style="color: #666666">' + text + '</span>';

                        me.tree.setItemText(me.tree.getSelectedItemId(),item);
                    }
                }
            }
            else if(itemId == 'btn_cancel'){
                me.grid.clearAll();
                me.enabledDisabledToolbars(false);

                me.objId == null?me.objDis.pop():me.objDis[me.objId] = me.obj[me.objId];

                me.itemsPanel.attachForm(me.objDis);
            }
        })
    },
    /**
     * Metodo que maneja el Evento --Click-- en los Botones del ToolBar del widget Tree
     */
    onEventClickButtonsTree: function () {
        var idx,
            aux,
            idTree,
            me = this;
        me.toolbarTree.attachEvent("onClick", function (itemId) {
            idTree = me.tree.getSelectedItemId();
            if (idTree) {
                idx = me.tree.getIndexById(idTree);
                switch(itemId){
                    case 'btn_up':
                        aux = me.obj[idx - 1];
                        if (aux != null)
                            me.obj[idx - 1] = me.obj[idx];
                    break;
                    case 'btn_down':
                        aux = me.obj[idx + 1];
                        if (aux != null)
                            me.obj[idx + 1] = me.obj[idx];
                    break;
                    case 'btn_edit':
                        //me.flag = true;
                        me.objId = idx;
                        me.grid.loadXML(mainPath + "xml/" + me.obj[idx].type + ".xml", function () {
                            me.setDataInGridProperty(idx);
                            me.grid.selectCell(3, 1, false, false, true);
                        });
                        me.enabledDisabledToolbars(true);
                    break;
                    case 'btn_delete':
                        dhtmlx.confirm({
                            text:"¿Esta seguro que quieres eliminar el Ítem?",
                            callback: function(status){
                                if(status == true){
                                    me.obj.splice(idx, 1);
                                    me.objDis.splice(idx,1);
                                    me.tree.deleteItem(idTree, true);
                                    me.itemsPanel.attachForm(me.objDis);
                                }
                            }
                        });
                    break;
                }
                if((itemId == 'btn_up' || itemId == 'btn_down') && aux != null){
                    me.obj[idx] = aux;
                    me.tree.moveItem(idTree, itemId.split('_')[1]);
                    me.tree.selectItem(idTree);
                }
                me.itemsPanel.attachForm(me.obj);
            }
            else
                dhtmlx.alert({
                    text:"Error seleccion un Ítem para poder mover."
                });
        });
    },
    /**
     * Metodo que maneja el Evento --Click-- sobre los Elementos del Tree
     */
    onEventClickItemsTree: function () {
        var id,
            aux,
            me = this;
        me.tree.setOnClickHandler(function (item) {
            id = me.tree.getIndexById(me.tree.getSelectedItemId());
            aux = me.obj[id].className;
            for (var i in me.obj) {
                if (me.obj[i].className == 'fontBoldBorder')
                    me.obj[i].className = 'fontBold';
                else if (me.obj[i].className == 'fontNormalBorder')
                    me.obj[i].className = 'fontNormal';
            }
            switch (aux) {
                case 'fontBold':
                    me.obj[id].className = 'fontBoldBorder';
                    break;
                case 'fontBoldBorder':
                    me.obj[id].className = "fontBold";
                    break;
                case 'fontNormal':
                    me.obj[id].className = 'fontNormalBorder';
                    break;
                case 'fontNormalBorder':
                    me.obj[id].className = 'fontNormal';
                    break;
                case undefined:
                    me.obj[id].className = 'fontNormalBorder';
                    break;
            }
            me.itemsPanel.attachForm(me.obj);
        });
    },
    /**
     * ----------------------- END WIDGET'S EVENT'S -----------------------
     */
    loadGlobalFormBoleta: function(){
        var me = this;
        me.widgetTab();
        me.widgetTree();
        me.widgetGrid();
        me.widgetItems();
        //me.enabledDisabledToolbars(false);
        me.statusItem.setText("Código de Boleta: <strong>" + me.nameBol + " - " + me.partBol + " :: </strong> Tipo de boleta: <strong>" + me.typeBol + "</strong>");
    },
    widgetMain: function(){
        /**
         * Se verifica de la existencia del Tab.
         */
        if (!searchTab('disTab')) {
            var me = disenadorClass;

            me.nameBol = disenadorwinClass.nameBol;
            me.partBol = disenadorwinClass.partBol;
            me.typeBol = disenadorwinClass.typeBol;

            me.script1 = disenadorwinClass.scriptBol1;
                //JSON.parse(disenadorwinClass.scriptBol1);
            me.script2 = disenadorwinClass.scriptBol2;
                //JSON.parse(disenadorwinClass.scriptBol2);

            me.loadGlobalFormBoleta();

            if(me.script1 != null){
                me.flag = true;

                me.loadEditFormBoleta();
            }
        }
        else
            mainTab.setTabActive("disTab");
    }
};